package view;

import ProjectYudisium.*;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.*;


public class PanelLihatPeriksaYudisium extends JPanel {

    private ArrayList<Yudisium> data;
    private JLabel labelNama;
    private JTextField textNama;
    private JLabel labelNim;
    private JTextField textNim;
    private JLabel labelNoHp;
    private JTextField textNoHp;
    private JLabel labelEmail;
    private JTextField textEmail;
    private JLabel labelProdi;
    private JRadioButton radioTE;
    private JRadioButton radioTM;
    private JRadioButton radioTI;
    private JRadioButton radioMat;
    private JLabel labelPeriode;
    private JTextField textPeriode;
    private JLabel labelHari;
    private JTextField textHari;
    private JLabel labelTanggal;
    private JTextField textTanggal;
    private JLabel labelJudul;
    private JLabel labelDaftarNilai;
    private JCheckBox cekDaftarNilai;
    private JLabel labelNaskahTa;
    private JCheckBox cekNaskahTa;
    private JLabel labelBebasPinjamLab;
    private JCheckBox cekBebasPinjamLab;
    private JLabel labelBebasPinjamDosen;
    private JCheckBox cekBebasPinjamDosen;
    private JLabel labelBuktiKp;
    private JCheckBox cekBuktiKp;
    private JLabel labelTkbi;
    private JCheckBox cekTkbi;
    private JLabel labelPengesahanTa;
    private JCheckBox cekPengesahanTa;
    private JLabel labelRbm;
    private JCheckBox cekRbm;
    private JLabel labelpoint;
    private JCheckBox cekPoint;
    private JButton butonUpdate;
    private JButton butonBatal;
    private JLabel labelStatus;
    private JRadioButton radioLengkap;
    private JRadioButton radioTakLengkap;

    public PanelLihatPeriksaYudisium() {
    }

    public PanelLihatPeriksaYudisium(ArrayList<Yudisium> DAFTAR_MAHASISWA) {
            this.data = data;
            setLayout(null);
            setBackground(Color.WHITE);

            labelJudul = new JLabel("FORM PERIKSA YUDISIUM");
            labelJudul.setBounds(250, 5, 900, 48);
            labelJudul.setFont(new Font("Times New Roman", 3, 24));
            labelJudul.setHorizontalAlignment((int) CENTER_ALIGNMENT);
            add(labelJudul);

            labelNama = new JLabel("Nama");
            labelNama.setBounds(10, 70, 50, 50);
            add(labelNama);

            textNama = new JTextField();
            textNama.setBounds(95, 85, 350, 20);
            add(textNama);


            labelNim = new JLabel("NIM");
            labelNim.setBounds(10, 105, 50, 50);
            add(labelNim);

            textNim = new JTextField();
            textNim.setBounds(95, 120, 100, 20);
            add(textNim);


            labelNoHp = new JLabel("Telp/Email");
            labelNoHp.setBounds(10, 140, 75, 50);
            add(labelNoHp);

            textNoHp = new JTextField();
            textNoHp.setBounds(95, 155, 200, 20);
            add(textNoHp);

            labelEmail = new JLabel("/");
            labelEmail.setBounds(320, 140, 5, 50);
            add(labelEmail);

            textEmail = new JTextField();
            textEmail.setBounds(340, 155, 200, 20);
            add(textEmail);

            labelProdi = new JLabel("Prodi");
            labelProdi.setBounds(10, 175, 50, 50);
            add(labelProdi);

            radioTE = new JRadioButton("TE");
            radioTE.setBounds(95, 190, 50, 20);
            radioTM = new JRadioButton("TM");
            radioTM.setBounds(165, 190, 50, 20);
            radioTI = new JRadioButton("TI");
            radioTI.setBounds(235, 190, 50, 20);
            radioMat = new JRadioButton("MAT");
            radioMat.setBounds(305, 190, 50, 20);
            add(radioTE);
            add(radioTM);
            add(radioTI);
            add(radioMat);
            ButtonGroup radioGroup = new ButtonGroup();
            radioGroup.add(radioTE);
            radioGroup.add(radioTM);
            radioGroup.add(radioTI);
            radioGroup.add(radioMat);

            labelPeriode = new JLabel("Mendaftarkan Yudisium periode bulan");
            labelPeriode.setBounds(10, 240, 250, 50);
            add(labelPeriode);

            textPeriode = new JTextField();
            textPeriode.setBounds(230, 255, 75, 20);
            add(textPeriode);

            labelPeriode = new JLabel("yang diselenggarakan pada:");
            labelPeriode.setBounds(310, 240, 200, 50);
            add(labelPeriode);


            labelHari = new JLabel("Hari");
            labelHari.setBounds(50, 300, 50, 50);
            add(labelHari);

            textHari = new JTextField();
            textHari.setBounds(135, 315, 100, 20);
            add(textHari);

            labelTanggal = new JLabel("Tanggal");
            labelTanggal.setBounds(50, 335, 50, 50);
            add(labelTanggal);

            textTanggal = new JTextField();
            textTanggal.setBounds(135, 350, 200, 20);
            add(textTanggal);


            labelJudul = new JLabel("LAMPIRAN");
            labelJudul.setBounds(1000, 70, 300, 50);
            add(labelJudul);

            labelDaftarNilai = new JLabel("Daftar nilai yang telah disetujui oleh Dosen Pembimbing Akademik.");
            labelDaftarNilai.setBounds(850, 100, 500, 50);
            add(labelDaftarNilai);

            labelNaskahTa = new JLabel("Satu (1) naskah TA/Skripsi sudah dijilid dan ditandatangani oleh Dekan + Softcopy.");
            labelNaskahTa.setBounds(850, 132, 500, 50);
            add(labelNaskahTa);

            labelBebasPinjamLab = new JLabel("Surat keterangan bebas pinjaman dari Laboratorium Jurusan.");
            labelBebasPinjamLab.setBounds(850, 164, 500, 50);
            add(labelBebasPinjamLab);

            labelBebasPinjamDosen = new JLabel("Surat keterangan bebas pinjaman dari Dosen-dosen Jurusan.");
            labelBebasPinjamDosen.setBounds(850, 196, 500, 50);
            add(labelBebasPinjamDosen);

            labelBuktiKp = new JLabel("Bukti penyerahan laporan Kerja Praktek.");
            labelBuktiKp.setBounds(850, 228, 500, 50);
            add(labelBuktiKp);

            labelTkbi = new JLabel("Fotocopy keterangan TOEFL/Test Kompetensi Bahasa Inggris (TKBI).");
            labelTkbi.setBounds(850, 260, 500, 50);
            add(labelTkbi);

            labelPengesahanTa = new JLabel("Fotocopy Lembar Pengesahan Tugas Akhir (Khusus Prodi TI).");
            labelPengesahanTa.setBounds(850, 292, 500, 50);
            add(labelPengesahanTa);

            labelpoint = new JLabel("Sistem Poin (mahasiswa angkatan >= 2008.");
            labelpoint.setBounds(850, 324, 500, 50);
            add(labelpoint);

            labelRbm = new JLabel("Bukti penyerahan RBM (khusus Prodi TM).");
            labelRbm.setBounds(850, 356, 500, 50);
            add(labelRbm);

            cekDaftarNilai = new JCheckBox();
            cekDaftarNilai.setBounds(800, 100, 30, 50);
            add(cekDaftarNilai);

            cekNaskahTa = new JCheckBox();
            cekNaskahTa.setBounds(800, 132, 30, 50);
            add(cekNaskahTa);

            cekBebasPinjamLab = new JCheckBox();
            cekBebasPinjamLab.setBounds(800, 164, 30, 50);
            add(cekBebasPinjamLab);

            cekBebasPinjamDosen = new JCheckBox();
            cekBebasPinjamDosen.setBounds(800, 196, 30, 50);
            add(cekBebasPinjamDosen);

            cekBuktiKp = new JCheckBox();
            cekBuktiKp.setBounds(800, 228, 30, 50);
            add(cekBuktiKp);

            cekTkbi = new JCheckBox();
            cekTkbi.setBounds(800, 260, 30, 50);
            add(cekTkbi);

            cekPengesahanTa = new JCheckBox();
            cekPengesahanTa.setBounds(800, 292, 30, 50);
            add(cekPengesahanTa);

            cekPoint = new JCheckBox();
            cekPoint.setBounds(800, 324, 30, 50);
            add(cekPoint);

            cekRbm = new JCheckBox();
            cekRbm.setBounds(800, 356, 30, 50);
            add(cekRbm);

        labelStatus = new JLabel("STATUS");
        labelStatus.setBounds(600, 450, 110,30);
        add(labelStatus);

        radioLengkap = new JRadioButton("LENGKAP");
        radioLengkap.setBounds(450, 500, 150, 50);
        add(radioLengkap);

        radioTakLengkap = new JRadioButton("TIDAK LENGKAP");
        radioTakLengkap.setBounds(680, 500, 150, 50);
        add(radioTakLengkap);

            butonUpdate = new JButton("Update");
            butonUpdate.setBounds(500, 600, 110, 50);
            add(butonUpdate);
            butonUpdate.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    tombolUpdateAction();
                }
            });
            butonBatal = new JButton("Batal");
            butonBatal.setBounds(650, 600, 110, 50);
            add(butonBatal);
            butonBatal.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    tombolBatalAction();
                }
            });

            textNama.setText(data.get(0).getNama());
            textNim.setText(data.get(0).getNim());
            textNoHp.setText(data.get(0).getNoHP());
            textEmail.setText(data.get(0).getEmail());
            textHari.setText(data.get(0).getHari());
            textPeriode.setText(data.get(0).getPeriodeYudisium());
            textTanggal.setText("" + data.get(0).getTanggal());
            if (data.get(0).getProdi().equals("Teknik Informatika")) {
                radioTI.setSelected(true);
            } else if (data.get(0).getProdi().equals("Teknik Mesin")) {
                radioTM.setSelected(true);
            } else if (data.get(0).getProdi().equals("Teknik Elektro")) {
                radioTE.setSelected(true);
            } else if (data.get(0).getProdi().equals("Matematika Murni")) {
                radioMat.setSelected(true);
            }

            if (data.get(0).getPersetujuan_nilai().equals("Ada")) {
                cekDaftarNilai.setSelected(true);
            }
            if (data.get(0).getPengesahan_skripsi().equals("Ada")) {
                cekNaskahTa.setSelected(true);
            }
            if (data.get(0).getBebaspinjam_lab().equals("Ada")) {
                cekBebasPinjamLab.setSelected(true);
            }
            if (data.get(0).getBebaspinjam_dosen().equals("Ada")) {
                cekBebasPinjamDosen.setSelected(true);
            }
            if (data.get(0).getBukti_kp().equals("Ada")) {
                cekBuktiKp.setSelected(true);
            }
            if (data.get(0).getFotocopy_tkbi().equals("Ada")) {
                cekTkbi.setSelected(true);
            }
            if (data.get(0).getFotocopy_ta().equals("Ada")) {
                cekPengesahanTa.setSelected(true);
            }
            if (data.get(0).getSistem_poin().equals("Ada")) {
                cekPoint.setSelected(true);
            }
            if (data.get(0).getBukti_rbm().equals("Ada")) {
                cekRbm.setSelected(true);
            }

            if(data.get(0).getStatus().equals("LENGKAP")) {
                radioLengkap.setSelected(true);
            }else if(data.get(0).getStatus().equals("TIDAK LENGKAP")){
                radioTakLengkap.setSelected(true);
            }
    }

    public void tombolUpdateAction() {
        Yudisium yud = new Yudisium();
        yud.setNama(textNama.getText());
        yud.setNim(textNim.getText());
        yud.setNoHP(textNoHp.getText());
        yud.setEmail(textEmail.getText());
        yud.setPeriodeYudisium(textPeriode.getText());
        yud.setHari(textHari.getText());
        yud.setTanggal(Integer.parseInt(textTanggal.getText()));
        if (radioTE.isSelected()) {
            yud.setProdi("Teknik Elektro");
        } else if (radioTM.isSelected()) {
            yud.setProdi("Teknik Mesin");
        } else if (radioTI.isSelected()) {
            yud.setProdi("Teknik Informatika");
        } else if (radioMat.isSelected()) {
            yud.setProdi("Matematika Murni");
        }

        if (cekDaftarNilai.isSelected() == true) {
            yud.setPersetujuan_nilai("Ada");
        } else {
            yud.setPersetujuan_nilai("Tidak Ada");
        }

        if (cekNaskahTa.isSelected() == true) {
            yud.setPengesahan_skripsi("Ada");
        } else {
            yud.setPengesahan_skripsi("Tidak Ada");
        }

        if (cekBebasPinjamLab.isSelected() == true) {
            yud.setBebaspinjam_lab("Ada");
        } else {
            yud.setBebaspinjam_lab("Tidak Ada");
        }

        if (cekBebasPinjamDosen.isSelected() == true) {
            yud.setBebaspinjam_dosen("Ada");
        } else {
            yud.setBebaspinjam_dosen("Tidak Ada");
        }

        if (cekBuktiKp.isSelected() == true) {
            yud.setBukti_kp("Ada");
        } else {
            yud.setBukti_kp("Tidak Ada");
        }

        if (cekTkbi.isSelected() == true) {
            yud.setFotocopy_tkbi("Ada");
        } else {
            yud.setFotocopy_tkbi("Tidak Ada");
        }

        if (cekPengesahanTa.isSelected() == true) {
            yud.setFotocopy_ta("Ada");
        } else {
            yud.setFotocopy_ta("Tidak Ada");
        }

        if (cekPoint.isSelected() == true) {
            yud.setSistem_poin("Ada");
        } else {
            yud.setSistem_poin("Tidak Ada");
        }

        if (cekRbm.isSelected() == true) {
            yud.setBukti_rbm("Ada");
        } else {
            yud.setBukti_rbm("Tidak Ada");
        }

        if(radioLengkap.isSelected()==true) {
            yud.setStatus("LENGKAP");
        } else if (radioTakLengkap.isSelected()==true) {
            yud.setStatus("TIDAK LENGKAP");
        }
        PengendaliPemeriksaanYudisium.ubahDataYudisium(yud);

    }

    public void tombolBatalAction() {
        System.exit(0);
    }

    public ArrayList<Yudisium> getData() {
        return data;
    }

    public void setData(ArrayList<Yudisium> data) {
        this.data = data;
    }
}
